package highTech.reflect;

import java.lang.reflect.Array;
import java.util.Arrays;

public class ArrayReflect6 {

	public static void main(String[] args) {
		int [] a1 = new int[]{1,2,3};
		int [] a2 = new int[4];
		int[][] a3 = new int[2][3];
		String [] a4 = new String[]{"a","b","c"};
		
		//1.������ͬά���Ԫ�����͵���������ͬһ���ͣ���������ͬ��Classʵ�����
		System.out.println(a1.getClass()==a2.getClass());
		//System.out.println(a1.getClass()==a4.getClass());
		//System.out.println(a1.getClass()==a3.getClass());
		
		System.out.println(a1.getClass().getName());
		
		//2.��������Classʵ������getSuperclass�������صĸ�����Object���Ӧ��Class
		System.out.println(a1.getClass().getSuperclass().getName());
		System.out.println(a3.getClass().getSuperclass().getName());
		System.out.println(a4.getClass().getSuperclass().getName());
		
		//3.�����͵�һά������Ա�����object����ʹ�ã����ܵ���Object[]����ʹ�ã��ǻ����͵�����
		//�ȿ��Ե���object����ʹ�ã�Ҳ���Ե���object[]����ʹ��
		Object obj1=a1;
		Object obj2=a4;
		
		///Object[] obj3=a1;  �����͵�һά�������޷�ת����һά���������
		Object[] obj4=a3;
		Object[] obj5=a4;
		
		System.out.println(a1);
		System.out.println(a4);
		
		//4.int[] ��String[]�����  
		//ԭ��:Ϊ�˼���jdk1.4����jdk1.4֮ǰû�пɱ����asList(Object[] objs),
		//�������int[]����ΪObject�����һ��Ԫ�أ���String�����е�ÿ��Ԫ����ΪObject�����һ��Ԫ�أ����Կ��Դ�ӡԪ��ֵ
		System.out.println(Arrays.asList(a1));//���ܴ�ӡ
		System.out.println(Arrays.asList(a4));//�ܴ�ӡ
		
		
		printArray(a1);
		printArray("sss");
	}

	//��������ķ���
	private static void printArray(Object obj) {
		if(obj.getClass().isArray()){
			int len=Array.getLength(obj);
			for(int i=0;i<len;i++){
				System.out.println(Array.get(obj, i));
			}
		}else{
			System.out.println(obj);
		}
		
	}
}
